//#include <asm/arch/mt_typedefs.h>
//#include <asm/arch/debug.h>

//  Error Code No.
#define RSUCCESS        0
#define ERACCESS        1
#define ERINVAL         2
#define ERWRAPPER		3

#ifndef NULL
#define NULL 0
#endif

#define GPIO_BASE (0x10211000)
#define GPIO_WR32(addr, data)   ((*(volatile unsigned long*)(GPIO_BASE+addr)) = (unsigned long)(data))
#define GPIO_RD32(addr)         (*(volatile unsigned long * const)(GPIO_BASE+addr))
#define GPIO_SET_BITS(BIT,REG)   ((*(volatile unsigned long*)(REG)) = (unsigned long)(BIT))
#define GPIO_CLR_BITS(BIT,REG)   ((*(volatile unsigned long*)(REG)) &= ~((unsigned long)(BIT)))

typedef enum GPIO_PIN
{    
    GPIO_UNSUPPORTED = -1,    
	GPIO0 = 0,
    GPIO1  , GPIO2  , GPIO3  , GPIO4  , GPIO5  , GPIO6  , GPIO7  , 
    GPIO8  , GPIO9  , GPIO10 , GPIO11 , GPIO12 , GPIO13 , GPIO14 , GPIO15 , 
    GPIO16 , GPIO17 , GPIO18 , GPIO19 , GPIO20 , GPIO21 , GPIO22 , GPIO23 , 
    GPIO24 , GPIO25 , GPIO26 , GPIO27 , GPIO28 , GPIO29 , GPIO30 , GPIO31 , 
    GPIO32 , GPIO33 , GPIO34 , GPIO35 , GPIO36 , GPIO37 , GPIO38 , GPIO39 , 
    GPIO40 , GPIO41 , GPIO42 , GPIO43 , GPIO44 , GPIO45 , GPIO46 , GPIO47 , 
    GPIO48 , GPIO49 , GPIO50 , GPIO51 , GPIO52 , GPIO53 , GPIO54 , GPIO55 , 
    GPIO56 , GPIO57 , GPIO58 , GPIO59 , GPIO60 , GPIO61 , GPIO62 , GPIO63 , 
    GPIO64 , GPIO65 , GPIO66 , GPIO67 , GPIO68 , GPIO69 , GPIO70 , GPIO71 , 
    GPIO72 , GPIO73 , GPIO74 , GPIO75 , GPIO76 , GPIO77 , GPIO78 , GPIO79 , 
    GPIO80 , GPIO81 , GPIO82 , GPIO83 , GPIO84 , GPIO85 , GPIO86 , GPIO87 , 
    GPIO88 , GPIO89 , GPIO90 , GPIO91 , GPIO92 , GPIO93 , GPIO94 , GPIO95 , 
    GPIO96 , GPIO97 , GPIO98 , GPIO99 , GPIO100, GPIO101, GPIO102,  MT_GPIO_BASE_MAX
}GPIO_PIN;

#define MAX_GPIO_PIN    (MT_GPIO_BASE_MAX) 

/******************************************************************************
* Enumeration for Clock output
******************************************************************************/
/* GPIO MODE CONTROL VALUE*/
typedef enum {
    GPIO_MODE_UNSUPPORTED = -1,
    GPIO_MODE_GPIO  = 0,
    GPIO_MODE_00    = 0,
    GPIO_MODE_01    = 1,
    GPIO_MODE_02    = 2,
    GPIO_MODE_03    = 3,
    GPIO_MODE_04    = 4,
    GPIO_MODE_05    = 5,
    GPIO_MODE_06    = 6,
    GPIO_MODE_07    = 7,

    GPIO_MODE_MAX,
    GPIO_MODE_DEFAULT = GPIO_MODE_01,
} GPIO_MODE;
/*----------------------------------------------------------------------------*/
/* GPIO DIRECTION */
typedef enum {
    GPIO_DIR_UNSUPPORTED = -1,
    GPIO_DIR_IN     = 0,
    GPIO_DIR_OUT    = 1,

    GPIO_DIR_MAX,
    GPIO_DIR_DEFAULT = GPIO_DIR_IN,
} GPIO_DIR;
/*----------------------------------------------------------------------------*/
/* GPIO PULL ENABLE*/
typedef enum {
    GPIO_PULL_EN_UNSUPPORTED = -1,
    GPIO_PULL_DISABLE = 0,
    GPIO_PULL_ENABLE  = 1,

    GPIO_PULL_EN_MAX,
    GPIO_PULL_EN_DEFAULT = GPIO_PULL_ENABLE,
} GPIO_PULL_EN;
/*----------------------------------------------------------------------------*/
/* GPIO SMT*/
typedef enum {
    GPIO_SMT_UNSUPPORTED = -1,
    GPIO_SMT_DISABLE = 0,
    GPIO_SMT_ENABLE  = 1,

    GPIO_SMT_MAX,
    GPIO_SMT_DEFAULT = GPIO_SMT_ENABLE,
} GPIO_SMT;
/*----------------------------------------------------------------------------*/
/* GPIO PULL-UP/PULL-DOWN*/
typedef enum {
    GPIO_PULL_UNSUPPORTED = -1,
    GPIO_PULL_DOWN  = 0,
    GPIO_PULL_UP    = 1,

    GPIO_PULL_MAX,
    GPIO_PULL_DEFAULT = GPIO_PULL_DOWN
} GPIO_PULL;
/*----------------------------------------------------------------------------*/
/* GPIO OUTPUT */
typedef enum {
    GPIO_OUT_UNSUPPORTED = -1,
    GPIO_OUT_ZERO = 0,
    GPIO_OUT_ONE  = 1,

    GPIO_OUT_MAX,
    GPIO_OUT_DEFAULT = GPIO_OUT_ZERO,
    GPIO_DATA_OUT_DEFAULT = GPIO_OUT_ZERO,  /*compatible with DCT*/
} GPIO_OUT;
/* GPIO INPUT */
typedef enum {
    GPIO_IN_UNSUPPORTED = -1,
    GPIO_IN_ZERO = 0,
    GPIO_IN_ONE  = 1,

    GPIO_IN_MAX,
} GPIO_IN;

/*----------------------------------------------------------------------------*/

/**
 * struct mt_pin_info - For all pins' setting.
 * @pin: The pin number.
 * @offset: The offset of pin setting register.
 * @bit: The offset of setting value register.
 * @width: The width of setting bit.
 * @ip_num: The IP number of setting register use.
 */
struct mtk_pin_info {
	unsigned int pin;
	unsigned int offset;
	unsigned char bit;
	unsigned char width;
	unsigned char ip_num;
};

#define MTK_PIN_INFO(_pin, _offset, _bit, _width, _ip_num)	\
{	\
	.pin = _pin,	\
	.offset = _offset,	\
	.bit = _bit, \
	.width = _width, \
	.ip_num = _ip_num,\
}

static const struct mtk_pin_info mtk_pin_info_mode[] = {
	MTK_PIN_INFO(0, 0x320, 16, 4, 0),
	MTK_PIN_INFO(1, 0x3A0, 16, 4, 0),
	MTK_PIN_INFO(2, 0x3A0, 20, 4, 0),
	MTK_PIN_INFO(3, 0x3A0, 24, 4, 0),
	MTK_PIN_INFO(4, 0x3A0, 28, 4, 0),
	MTK_PIN_INFO(5, 0x320, 0, 4, 0),
	MTK_PIN_INFO(6, 0x300, 4, 4, 0),
	MTK_PIN_INFO(7, 0x300, 4, 4, 0),
	MTK_PIN_INFO(8, 0x350, 20, 4, 0),
	MTK_PIN_INFO(9, 0x350, 24, 4, 0),
	MTK_PIN_INFO(10, 0x300, 8, 4, 0),
	MTK_PIN_INFO(11, 0x300, 8, 4, 0),
	MTK_PIN_INFO(12, 0x300, 8, 4, 0),
	MTK_PIN_INFO(13, 0x300, 8, 4, 0),
	MTK_PIN_INFO(14, 0x320, 4, 4, 0),
	MTK_PIN_INFO(15, 0x320, 8, 4, 0),
	MTK_PIN_INFO(16, 0x320, 20, 4, 0),
	MTK_PIN_INFO(17, 0x320, 24, 4, 0),
	MTK_PIN_INFO(18, 0x310, 16, 4, 0),
	MTK_PIN_INFO(19, 0x310, 20, 4, 0),
	MTK_PIN_INFO(20, 0x310, 24, 4, 0),
	MTK_PIN_INFO(21, 0x310, 28, 4, 0),
	MTK_PIN_INFO(22, 0x380, 16, 4, 0),
	MTK_PIN_INFO(23, 0x300, 24, 4, 0),
	MTK_PIN_INFO(24, 0x300, 24, 4, 0),
	MTK_PIN_INFO(25, 0x300, 12, 4, 0),
	MTK_PIN_INFO(26, 0x300, 12, 4, 0),
	MTK_PIN_INFO(27, 0x300, 12, 4, 0),
	MTK_PIN_INFO(28, 0x300, 12, 4, 0),
	MTK_PIN_INFO(29, 0x300, 12, 4, 0),
	MTK_PIN_INFO(30, 0x300, 12, 4, 0),
	MTK_PIN_INFO(31, 0x300, 12, 4, 0),
	MTK_PIN_INFO(32, 0x300, 12, 4, 0),
	MTK_PIN_INFO(33, 0x300, 12, 4, 0),
	MTK_PIN_INFO(34, 0x300, 12, 4, 0),
	MTK_PIN_INFO(35, 0x300, 12, 4, 0),
	MTK_PIN_INFO(36, 0x300, 12, 4, 0),
	MTK_PIN_INFO(37, 0x300, 20, 4, 0),
	MTK_PIN_INFO(38, 0x300, 20, 4, 0),
	MTK_PIN_INFO(39, 0x300, 20, 4, 0),
	MTK_PIN_INFO(40, 0x300, 20, 4, 0),
	MTK_PIN_INFO(41, 0x300, 20, 4, 0),
	MTK_PIN_INFO(42, 0x300, 20, 4, 0),
	MTK_PIN_INFO(43, 0x300, 20, 4, 0),
	MTK_PIN_INFO(44, 0x300, 20, 4, 0),
	MTK_PIN_INFO(45, 0x300, 20, 4, 0),
	MTK_PIN_INFO(46, 0x300, 20, 4, 0),
	MTK_PIN_INFO(47, 0x300, 20, 4, 0),
	MTK_PIN_INFO(48, 0x300, 20, 4, 0),
	MTK_PIN_INFO(49, 0x300, 20, 4, 0),
	MTK_PIN_INFO(50, 0x300, 20, 4, 0),
	MTK_PIN_INFO(51, 0x330, 4, 4, 0),
	MTK_PIN_INFO(52, 0x330, 8, 4, 0),
	MTK_PIN_INFO(53, 0x330, 12, 4, 0),
	MTK_PIN_INFO(54, 0x330, 16, 4, 0),
	MTK_PIN_INFO(55, 0x330, 20, 4, 0),
	MTK_PIN_INFO(56, 0x330, 24, 4, 0),
	MTK_PIN_INFO(57, 0x330, 28, 4, 0),
	MTK_PIN_INFO(58, 0x340, 0, 4, 0),
	MTK_PIN_INFO(59, 0x340, 4, 4, 0),
	MTK_PIN_INFO(60, 0x340, 8, 4, 0),
	MTK_PIN_INFO(61, 0x340, 12, 4, 0),
	MTK_PIN_INFO(62, 0x340, 16, 4, 0),
	MTK_PIN_INFO(63, 0x340, 20, 4, 0),
	MTK_PIN_INFO(64, 0x340, 24, 4, 0),
	MTK_PIN_INFO(65, 0x340, 28, 4, 0),
	MTK_PIN_INFO(66, 0x350, 0, 4, 0),
	MTK_PIN_INFO(67, 0x350, 4, 4, 0),
	MTK_PIN_INFO(68, 0x350, 8, 4, 0),
	MTK_PIN_INFO(69, 0x350, 12, 4, 0),
	MTK_PIN_INFO(70, 0x350, 16, 4, 0),
	MTK_PIN_INFO(71, 0x300, 16, 4, 0),
	MTK_PIN_INFO(72, 0x300, 16, 4, 0),
	MTK_PIN_INFO(73, 0x310, 0, 4, 0),
	MTK_PIN_INFO(74, 0x310, 4, 4, 0),
	MTK_PIN_INFO(75, 0x310, 8, 4, 0),
	MTK_PIN_INFO(76, 0x310, 12, 4, 0),
	MTK_PIN_INFO(77, 0x320, 28, 4, 0),
	MTK_PIN_INFO(78, 0x320, 12, 4, 0),
	MTK_PIN_INFO(79, 0x3A0, 0, 4, 0),
	MTK_PIN_INFO(80, 0x3A0, 4, 4, 0),
	MTK_PIN_INFO(81, 0x3A0, 8, 4, 0),
	MTK_PIN_INFO(82, 0x3A0, 12, 4, 0),
	MTK_PIN_INFO(83, 0x350, 28, 4, 0),
	MTK_PIN_INFO(84, 0x330, 0, 4, 0),
	MTK_PIN_INFO(85, 0x360, 4, 4, 0),
	MTK_PIN_INFO(86, 0x360, 8, 4, 0),
	MTK_PIN_INFO(87, 0x360, 12, 4, 0),
	MTK_PIN_INFO(88, 0x360, 16, 4, 0),
	MTK_PIN_INFO(89, 0x360, 20, 4, 0),
	MTK_PIN_INFO(90, 0x360, 24, 4, 0),
	MTK_PIN_INFO(91, 0x390, 16, 4, 0),
	MTK_PIN_INFO(92, 0x390, 20, 4, 0),
	MTK_PIN_INFO(93, 0x390, 24, 4, 0),
	MTK_PIN_INFO(94, 0x390, 28, 4, 0),
	MTK_PIN_INFO(95, 0x380, 20, 4, 0),
	MTK_PIN_INFO(96, 0x380, 24, 4, 0),
	MTK_PIN_INFO(97, 0x380, 28, 4, 0),
	MTK_PIN_INFO(98, 0x390, 0, 4, 0),
	MTK_PIN_INFO(99, 0x390, 4, 4, 0),
	MTK_PIN_INFO(100, 0x390, 8, 4, 0),
	MTK_PIN_INFO(101, 0x390, 12, 4, 0),
	MTK_PIN_INFO(102, 0x440, 6, 4, 0),
};

static const struct mtk_pin_info mtk_pin_info_dir[] = {
	MTK_PIN_INFO(0, 0x000, 0, 1, 0),
	MTK_PIN_INFO(1, 0x000, 1, 1, 0),
	MTK_PIN_INFO(2, 0x000, 2, 1, 0),
	MTK_PIN_INFO(3, 0x000, 3, 1, 0),
	MTK_PIN_INFO(4, 0x000, 4, 1, 0),
	MTK_PIN_INFO(5, 0x000, 5, 1, 0),
	MTK_PIN_INFO(6, 0x000, 6, 1, 0),
	MTK_PIN_INFO(7, 0x000, 7, 1, 0),
	MTK_PIN_INFO(8, 0x000, 8, 1, 0),
	MTK_PIN_INFO(9, 0x000, 9, 1, 0),
	MTK_PIN_INFO(10, 0x000, 10, 1, 0),
	MTK_PIN_INFO(11, 0x000, 11, 1, 0),
	MTK_PIN_INFO(12, 0x000, 12, 1, 0),
	MTK_PIN_INFO(13, 0x000, 13, 1, 0),
	MTK_PIN_INFO(14, 0x000, 14, 1, 0),
	MTK_PIN_INFO(15, 0x000, 15, 1, 0),
	MTK_PIN_INFO(16, 0x000, 16, 1, 0),
	MTK_PIN_INFO(17, 0x000, 17, 1, 0),
	MTK_PIN_INFO(18, 0x000, 18, 1, 0),
	MTK_PIN_INFO(19, 0x000, 19, 1, 0),
	MTK_PIN_INFO(20, 0x000, 20, 1, 0),
	MTK_PIN_INFO(21, 0x000, 21, 1, 0),
	MTK_PIN_INFO(22, 0x000, 22, 1, 0),
	MTK_PIN_INFO(23, 0x000, 23, 1, 0),
	MTK_PIN_INFO(24, 0x000, 24, 1, 0),
	MTK_PIN_INFO(25, 0x000, 25, 1, 0),
	MTK_PIN_INFO(26, 0x000, 26, 1, 0),
	MTK_PIN_INFO(27, 0x000, 27, 1, 0),
	MTK_PIN_INFO(28, 0x000, 28, 1, 0),
	MTK_PIN_INFO(29, 0x000, 29, 1, 0),
	MTK_PIN_INFO(30, 0x000, 30, 1, 0),
	MTK_PIN_INFO(31, 0x000, 31, 1, 0),
	MTK_PIN_INFO(32, 0x010, 0, 1, 0),
	MTK_PIN_INFO(33, 0x010, 1, 1, 0),
	MTK_PIN_INFO(34, 0x010, 2, 1, 0),
	MTK_PIN_INFO(35, 0x010, 3, 1, 0),
	MTK_PIN_INFO(36, 0x010, 4, 1, 0),
	MTK_PIN_INFO(37, 0x010, 5, 1, 0),
	MTK_PIN_INFO(38, 0x010, 6, 1, 0),
	MTK_PIN_INFO(39, 0x010, 7, 1, 0),
	MTK_PIN_INFO(40, 0x010, 8, 1, 0),
	MTK_PIN_INFO(41, 0x010, 9, 1, 0),
	MTK_PIN_INFO(42, 0x010, 10, 1, 0),
	MTK_PIN_INFO(43, 0x010, 11, 1, 0),
	MTK_PIN_INFO(44, 0x010, 12, 1, 0),
	MTK_PIN_INFO(45, 0x010, 13, 1, 0),
	MTK_PIN_INFO(46, 0x010, 14, 1, 0),
	MTK_PIN_INFO(47, 0x010, 15, 1, 0),
	MTK_PIN_INFO(48, 0x010, 16, 1, 0),
	MTK_PIN_INFO(49, 0x010, 17, 1, 0),
	MTK_PIN_INFO(50, 0x010, 18, 1, 0),
	MTK_PIN_INFO(51, 0x010, 19, 1, 0),
	MTK_PIN_INFO(52, 0x010, 20, 1, 0),
	MTK_PIN_INFO(53, 0x010, 21, 1, 0),
	MTK_PIN_INFO(54, 0x010, 22, 1, 0),
	MTK_PIN_INFO(55, 0x010, 23, 1, 0),
	MTK_PIN_INFO(56, 0x010, 24, 1, 0),
	MTK_PIN_INFO(57, 0x010, 25, 1, 0),
	MTK_PIN_INFO(58, 0x010, 26, 1, 0),
	MTK_PIN_INFO(59, 0x010, 27, 1, 0),
	MTK_PIN_INFO(60, 0x010, 28, 1, 0),
	MTK_PIN_INFO(61, 0x010, 29, 1, 0),
	MTK_PIN_INFO(62, 0x010, 30, 1, 0),
	MTK_PIN_INFO(63, 0x010, 31, 1, 0),
	MTK_PIN_INFO(64, 0x020, 0, 1, 0),
	MTK_PIN_INFO(65, 0x020, 1, 1, 0),
	MTK_PIN_INFO(66, 0x020, 2, 1, 0),
	MTK_PIN_INFO(67, 0x020, 3, 1, 0),
	MTK_PIN_INFO(68, 0x020, 4, 1, 0),
	MTK_PIN_INFO(69, 0x020, 5, 1, 0),
	MTK_PIN_INFO(70, 0x020, 6, 1, 0),
	MTK_PIN_INFO(71, 0x020, 7, 1, 0),
	MTK_PIN_INFO(72, 0x020, 8, 1, 0),
	MTK_PIN_INFO(73, 0x020, 9, 1, 0),
	MTK_PIN_INFO(74, 0x020, 10, 1, 0),
	MTK_PIN_INFO(75, 0x020, 11, 1, 0),
	MTK_PIN_INFO(76, 0x020, 12, 1, 0),
	MTK_PIN_INFO(77, 0x020, 13, 1, 0),
	MTK_PIN_INFO(78, 0x020, 14, 1, 0),
	MTK_PIN_INFO(79, 0x020, 15, 1, 0),
	MTK_PIN_INFO(80, 0x020, 16, 1, 0),
	MTK_PIN_INFO(81, 0x020, 17, 1, 0),
	MTK_PIN_INFO(82, 0x020, 18, 1, 0),
	MTK_PIN_INFO(83, 0x020, 19, 1, 0),
	MTK_PIN_INFO(84, 0x020, 20, 1, 0),
	MTK_PIN_INFO(85, 0x020, 21, 1, 0),
	MTK_PIN_INFO(86, 0x020, 22, 1, 0),
	MTK_PIN_INFO(87, 0x020, 23, 1, 0),
	MTK_PIN_INFO(88, 0x020, 24, 1, 0),
	MTK_PIN_INFO(89, 0x020, 25, 1, 0),
	MTK_PIN_INFO(90, 0x020, 26, 1, 0),
	MTK_PIN_INFO(91, 0x020, 27, 1, 0),
	MTK_PIN_INFO(92, 0x020, 28, 1, 0),
	MTK_PIN_INFO(93, 0x020, 29, 1, 0),
	MTK_PIN_INFO(94, 0x020, 30, 1, 0),
	MTK_PIN_INFO(95, 0x020, 31, 1, 0),
	MTK_PIN_INFO(96, 0x030, 0, 1, 0),
	MTK_PIN_INFO(97, 0x030, 1, 1, 0),
	MTK_PIN_INFO(98, 0x030, 2, 1, 0),
	MTK_PIN_INFO(99, 0x030, 3, 1, 0),
	MTK_PIN_INFO(100, 0x030, 4, 1, 0),
	MTK_PIN_INFO(101, 0x030, 5, 1, 0),
	MTK_PIN_INFO(102, 0x030, 6, 1, 0),
};

static const struct mtk_pin_info mtk_pin_info_datain[] = {
	MTK_PIN_INFO(0, 0x200, 0, 1, 0),
	MTK_PIN_INFO(1, 0x200, 1, 1, 0),
	MTK_PIN_INFO(2, 0x200, 2, 1, 0),
	MTK_PIN_INFO(3, 0x200, 3, 1, 0),
	MTK_PIN_INFO(4, 0x200, 4, 1, 0),
	MTK_PIN_INFO(5, 0x200, 5, 1, 0),
	MTK_PIN_INFO(6, 0x200, 6, 1, 0),
	MTK_PIN_INFO(7, 0x200, 7, 1, 0),
	MTK_PIN_INFO(8, 0x200, 8, 1, 0),
	MTK_PIN_INFO(9, 0x200, 9, 1, 0),
	MTK_PIN_INFO(10, 0x200, 10, 1, 0),
	MTK_PIN_INFO(11, 0x200, 11, 1, 0),
	MTK_PIN_INFO(12, 0x200, 12, 1, 0),
	MTK_PIN_INFO(13, 0x200, 13, 1, 0),
	MTK_PIN_INFO(14, 0x200, 14, 1, 0),
	MTK_PIN_INFO(15, 0x200, 15, 1, 0),
	MTK_PIN_INFO(16, 0x200, 16, 1, 0),
	MTK_PIN_INFO(17, 0x200, 17, 1, 0),
	MTK_PIN_INFO(18, 0x200, 18, 1, 0),
	MTK_PIN_INFO(19, 0x200, 19, 1, 0),
	MTK_PIN_INFO(20, 0x200, 20, 1, 0),
	MTK_PIN_INFO(21, 0x200, 21, 1, 0),
	MTK_PIN_INFO(22, 0x200, 22, 1, 0),
	MTK_PIN_INFO(23, 0x200, 23, 1, 0),
	MTK_PIN_INFO(24, 0x200, 24, 1, 0),
	MTK_PIN_INFO(25, 0x200, 25, 1, 0),
	MTK_PIN_INFO(26, 0x200, 26, 1, 0),
	MTK_PIN_INFO(27, 0x200, 27, 1, 0),
	MTK_PIN_INFO(28, 0x200, 28, 1, 0),
	MTK_PIN_INFO(29, 0x200, 29, 1, 0),
	MTK_PIN_INFO(30, 0x200, 30, 1, 0),
	MTK_PIN_INFO(31, 0x200, 31, 1, 0),
	MTK_PIN_INFO(32, 0x210, 0, 1, 0),
	MTK_PIN_INFO(33, 0x210, 1, 1, 0),
	MTK_PIN_INFO(34, 0x210, 2, 1, 0),
	MTK_PIN_INFO(35, 0x210, 3, 1, 0),
	MTK_PIN_INFO(36, 0x210, 4, 1, 0),
	MTK_PIN_INFO(37, 0x210, 5, 1, 0),
	MTK_PIN_INFO(38, 0x210, 6, 1, 0),
	MTK_PIN_INFO(39, 0x210, 7, 1, 0),
	MTK_PIN_INFO(40, 0x210, 8, 1, 0),
	MTK_PIN_INFO(41, 0x210, 9, 1, 0),
	MTK_PIN_INFO(42, 0x210, 10, 1, 0),
	MTK_PIN_INFO(43, 0x210, 11, 1, 0),
	MTK_PIN_INFO(44, 0x210, 12, 1, 0),
	MTK_PIN_INFO(45, 0x210, 13, 1, 0),
	MTK_PIN_INFO(46, 0x210, 14, 1, 0),
	MTK_PIN_INFO(47, 0x210, 15, 1, 0),
	MTK_PIN_INFO(48, 0x210, 16, 1, 0),
	MTK_PIN_INFO(49, 0x210, 17, 1, 0),
	MTK_PIN_INFO(50, 0x210, 18, 1, 0),
	MTK_PIN_INFO(51, 0x210, 19, 1, 0),
	MTK_PIN_INFO(52, 0x210, 20, 1, 0),
	MTK_PIN_INFO(53, 0x210, 21, 1, 0),
	MTK_PIN_INFO(54, 0x210, 22, 1, 0),
	MTK_PIN_INFO(55, 0x210, 23, 1, 0),
	MTK_PIN_INFO(56, 0x210, 24, 1, 0),
	MTK_PIN_INFO(57, 0x210, 25, 1, 0),
	MTK_PIN_INFO(58, 0x210, 26, 1, 0),
	MTK_PIN_INFO(59, 0x210, 27, 1, 0),
	MTK_PIN_INFO(60, 0x210, 28, 1, 0),
	MTK_PIN_INFO(61, 0x210, 29, 1, 0),
	MTK_PIN_INFO(62, 0x210, 30, 1, 0),
	MTK_PIN_INFO(63, 0x210, 31, 1, 0),
	MTK_PIN_INFO(64, 0x220, 0, 1, 0),
	MTK_PIN_INFO(65, 0x220, 1, 1, 0),
	MTK_PIN_INFO(66, 0x220, 2, 1, 0),
	MTK_PIN_INFO(67, 0x220, 3, 1, 0),
	MTK_PIN_INFO(68, 0x220, 4, 1, 0),
	MTK_PIN_INFO(69, 0x220, 5, 1, 0),
	MTK_PIN_INFO(70, 0x220, 6, 1, 0),
	MTK_PIN_INFO(71, 0x220, 7, 1, 0),
	MTK_PIN_INFO(72, 0x220, 8, 1, 0),
	MTK_PIN_INFO(73, 0x220, 9, 1, 0),
	MTK_PIN_INFO(74, 0x220, 10, 1, 0),
	MTK_PIN_INFO(75, 0x220, 11, 1, 0),
	MTK_PIN_INFO(76, 0x220, 12, 1, 0),
	MTK_PIN_INFO(77, 0x220, 13, 1, 0),
	MTK_PIN_INFO(78, 0x220, 14, 1, 0),
	MTK_PIN_INFO(79, 0x220, 15, 1, 0),
	MTK_PIN_INFO(80, 0x220, 16, 1, 0),
	MTK_PIN_INFO(81, 0x220, 17, 1, 0),
	MTK_PIN_INFO(82, 0x220, 18, 1, 0),
	MTK_PIN_INFO(83, 0x220, 19, 1, 0),
	MTK_PIN_INFO(84, 0x220, 20, 1, 0),
	MTK_PIN_INFO(85, 0x220, 21, 1, 0),
	MTK_PIN_INFO(86, 0x220, 22, 1, 0),
	MTK_PIN_INFO(87, 0x220, 23, 1, 0),
	MTK_PIN_INFO(88, 0x220, 24, 1, 0),
	MTK_PIN_INFO(89, 0x220, 25, 1, 0),
	MTK_PIN_INFO(90, 0x220, 26, 1, 0),
	MTK_PIN_INFO(91, 0x220, 27, 1, 0),
	MTK_PIN_INFO(92, 0x220, 28, 1, 0),
	MTK_PIN_INFO(93, 0x220, 29, 1, 0),
	MTK_PIN_INFO(94, 0x220, 30, 1, 0),
	MTK_PIN_INFO(95, 0x220, 31, 1, 0),
	MTK_PIN_INFO(96, 0x230, 0, 1, 0),
	MTK_PIN_INFO(97, 0x230, 1, 1, 0),
	MTK_PIN_INFO(98, 0x230, 2, 1, 0),
	MTK_PIN_INFO(99, 0x230, 3, 1, 0),
	MTK_PIN_INFO(100, 0x230, 4, 1, 0),
	MTK_PIN_INFO(101, 0x230, 5, 1, 0),
	MTK_PIN_INFO(102, 0x230, 6, 1, 0),
};

static const struct mtk_pin_info mtk_pin_info_dataout[] = {
	MTK_PIN_INFO(0, 0x100, 0, 1, 0),
	MTK_PIN_INFO(1, 0x100, 1, 1, 0),
	MTK_PIN_INFO(2, 0x100, 2, 1, 0),
	MTK_PIN_INFO(3, 0x100, 3, 1, 0),
	MTK_PIN_INFO(4, 0x100, 4, 1, 0),
	MTK_PIN_INFO(5, 0x100, 5, 1, 0),
	MTK_PIN_INFO(6, 0x100, 6, 1, 0),
	MTK_PIN_INFO(7, 0x100, 7, 1, 0),
	MTK_PIN_INFO(8, 0x100, 8, 1, 0),
	MTK_PIN_INFO(9, 0x100, 9, 1, 0),
	MTK_PIN_INFO(10, 0x100, 10, 1, 0),
	MTK_PIN_INFO(11, 0x100, 11, 1, 0),
	MTK_PIN_INFO(12, 0x100, 12, 1, 0),
	MTK_PIN_INFO(13, 0x100, 13, 1, 0),
	MTK_PIN_INFO(14, 0x100, 14, 1, 0),
	MTK_PIN_INFO(15, 0x100, 15, 1, 0),
	MTK_PIN_INFO(16, 0x100, 16, 1, 0),
	MTK_PIN_INFO(17, 0x100, 17, 1, 0),
	MTK_PIN_INFO(18, 0x100, 18, 1, 0),
	MTK_PIN_INFO(19, 0x100, 19, 1, 0),
	MTK_PIN_INFO(20, 0x100, 20, 1, 0),
	MTK_PIN_INFO(21, 0x100, 21, 1, 0),
	MTK_PIN_INFO(22, 0x100, 22, 1, 0),
	MTK_PIN_INFO(23, 0x100, 23, 1, 0),
	MTK_PIN_INFO(24, 0x100, 24, 1, 0),
	MTK_PIN_INFO(25, 0x100, 25, 1, 0),
	MTK_PIN_INFO(26, 0x100, 26, 1, 0),
	MTK_PIN_INFO(27, 0x100, 27, 1, 0),
	MTK_PIN_INFO(28, 0x100, 28, 1, 0),
	MTK_PIN_INFO(29, 0x100, 29, 1, 0),
	MTK_PIN_INFO(30, 0x100, 30, 1, 0),
	MTK_PIN_INFO(31, 0x100, 31, 1, 0),
	MTK_PIN_INFO(32, 0x110, 0, 1, 0),
	MTK_PIN_INFO(33, 0x110, 1, 1, 0),
	MTK_PIN_INFO(34, 0x110, 2, 1, 0),
	MTK_PIN_INFO(35, 0x110, 3, 1, 0),
	MTK_PIN_INFO(36, 0x110, 4, 1, 0),
	MTK_PIN_INFO(37, 0x110, 5, 1, 0),
	MTK_PIN_INFO(38, 0x110, 6, 1, 0),
	MTK_PIN_INFO(39, 0x110, 7, 1, 0),
	MTK_PIN_INFO(40, 0x110, 8, 1, 0),
	MTK_PIN_INFO(41, 0x110, 9, 1, 0),
	MTK_PIN_INFO(42, 0x110, 10, 1, 0),
	MTK_PIN_INFO(43, 0x110, 11, 1, 0),
	MTK_PIN_INFO(44, 0x110, 12, 1, 0),
	MTK_PIN_INFO(45, 0x110, 13, 1, 0),
	MTK_PIN_INFO(46, 0x110, 14, 1, 0),
	MTK_PIN_INFO(47, 0x110, 15, 1, 0),
	MTK_PIN_INFO(48, 0x110, 16, 1, 0),
	MTK_PIN_INFO(49, 0x110, 17, 1, 0),
	MTK_PIN_INFO(50, 0x110, 18, 1, 0),
	MTK_PIN_INFO(51, 0x110, 19, 1, 0),
	MTK_PIN_INFO(52, 0x110, 20, 1, 0),
	MTK_PIN_INFO(53, 0x110, 21, 1, 0),
	MTK_PIN_INFO(54, 0x110, 22, 1, 0),
	MTK_PIN_INFO(55, 0x110, 23, 1, 0),
	MTK_PIN_INFO(56, 0x110, 24, 1, 0),
	MTK_PIN_INFO(57, 0x110, 25, 1, 0),
	MTK_PIN_INFO(58, 0x110, 26, 1, 0),
	MTK_PIN_INFO(59, 0x110, 27, 1, 0),
	MTK_PIN_INFO(60, 0x110, 28, 1, 0),
	MTK_PIN_INFO(61, 0x110, 29, 1, 0),
	MTK_PIN_INFO(62, 0x110, 30, 1, 0),
	MTK_PIN_INFO(63, 0x110, 31, 1, 0),
	MTK_PIN_INFO(64, 0x120, 0, 1, 0),
	MTK_PIN_INFO(65, 0x120, 1, 1, 0),
	MTK_PIN_INFO(66, 0x120, 2, 1, 0),
	MTK_PIN_INFO(67, 0x120, 3, 1, 0),
	MTK_PIN_INFO(68, 0x120, 4, 1, 0),
	MTK_PIN_INFO(69, 0x120, 5, 1, 0),
	MTK_PIN_INFO(70, 0x120, 6, 1, 0),
	MTK_PIN_INFO(71, 0x120, 7, 1, 0),
	MTK_PIN_INFO(72, 0x120, 8, 1, 0),
	MTK_PIN_INFO(73, 0x120, 9, 1, 0),
	MTK_PIN_INFO(74, 0x120, 10, 1, 0),
	MTK_PIN_INFO(75, 0x120, 11, 1, 0),
	MTK_PIN_INFO(76, 0x120, 12, 1, 0),
	MTK_PIN_INFO(77, 0x120, 13, 1, 0),
	MTK_PIN_INFO(78, 0x120, 14, 1, 0),
	MTK_PIN_INFO(79, 0x120, 15, 1, 0),
	MTK_PIN_INFO(80, 0x120, 16, 1, 0),
	MTK_PIN_INFO(81, 0x120, 17, 1, 0),
	MTK_PIN_INFO(82, 0x120, 18, 1, 0),
	MTK_PIN_INFO(83, 0x120, 19, 1, 0),
	MTK_PIN_INFO(84, 0x120, 20, 1, 0),
	MTK_PIN_INFO(85, 0x120, 21, 1, 0),
	MTK_PIN_INFO(86, 0x120, 22, 1, 0),
	MTK_PIN_INFO(87, 0x120, 23, 1, 0),
	MTK_PIN_INFO(88, 0x120, 24, 1, 0),
	MTK_PIN_INFO(89, 0x120, 25, 1, 0),
	MTK_PIN_INFO(90, 0x120, 26, 1, 0),
	MTK_PIN_INFO(91, 0x120, 27, 1, 0),
	MTK_PIN_INFO(92, 0x120, 28, 1, 0),
	MTK_PIN_INFO(93, 0x120, 29, 1, 0),
	MTK_PIN_INFO(94, 0x120, 30, 1, 0),
	MTK_PIN_INFO(95, 0x120, 31, 1, 0),
	MTK_PIN_INFO(96, 0x130, 0, 1, 0),
	MTK_PIN_INFO(97, 0x130, 1, 1, 0),
	MTK_PIN_INFO(98, 0x130, 2, 1, 0),
	MTK_PIN_INFO(99, 0x130, 3, 1, 0),
	MTK_PIN_INFO(100, 0x130, 4, 1, 0),
	MTK_PIN_INFO(101, 0x130, 5, 1, 0),
	MTK_PIN_INFO(102, 0x130, 6, 1, 0),
};

static const struct mtk_pin_info mtk_pin_info_pu[] = {
	MTK_PIN_INFO(0, 0x930, 0, 1, 0),
	MTK_PIN_INFO(1, 0x930, 1, 1, 0),
	MTK_PIN_INFO(2, 0x930, 2, 1, 0),
	MTK_PIN_INFO(3, 0x930, 3, 1, 0),
	MTK_PIN_INFO(4, 0x930, 4, 1, 0),
	MTK_PIN_INFO(5, 0x930, 5, 1, 0),
	MTK_PIN_INFO(6, 0x930, 6, 1, 0),
	MTK_PIN_INFO(7, 0x930, 7, 1, 0),
	MTK_PIN_INFO(8, 0x930, 8, 1, 0),
	MTK_PIN_INFO(9, 0x930, 9, 1, 0),
	MTK_PIN_INFO(10, 0x930, 10, 1, 0),
	MTK_PIN_INFO(11, 0x930, 11, 1, 0),
	MTK_PIN_INFO(12, 0x930, 12, 1, 0),
	MTK_PIN_INFO(13, 0x930, 13, 1, 0),
	MTK_PIN_INFO(14, 0x930, 14, 1, 0),
	MTK_PIN_INFO(15, 0x930, 15, 1, 0),
	MTK_PIN_INFO(16, 0x930, 16, 1, 0),
	MTK_PIN_INFO(17, 0x930, 17, 1, 0),
	MTK_PIN_INFO(18, 0x930, 18, 1, 0),
	MTK_PIN_INFO(19, 0x930, 19, 1, 0),
	MTK_PIN_INFO(20, 0x930, 20, 1, 0),
	MTK_PIN_INFO(21, 0x930, 21, 1, 0),
	MTK_PIN_INFO(22, 0x930, 22, 1, 0),
	MTK_PIN_INFO(23, 0x930, 23, 1, 0),
	MTK_PIN_INFO(24, 0x930, 24, 1, 0),
	MTK_PIN_INFO(25, 0x930, 25, 1, 0),
	MTK_PIN_INFO(26, 0x930, 26, 1, 0),
	MTK_PIN_INFO(27, 0x930, 27, 1, 0),
	MTK_PIN_INFO(28, 0x930, 28, 1, 0),
	MTK_PIN_INFO(29, 0x930, 29, 1, 0),
	MTK_PIN_INFO(30, 0x930, 30, 1, 0),
	MTK_PIN_INFO(31, 0x930, 31, 1, 0),
	MTK_PIN_INFO(32, 0xA30, 0, 1, 0),
	MTK_PIN_INFO(33, 0xA30, 1, 1, 0),
	MTK_PIN_INFO(34, 0xA30, 2, 1, 0),
	MTK_PIN_INFO(35, 0xA30, 3, 1, 0),
	MTK_PIN_INFO(36, 0xA30, 4, 1, 0),
	MTK_PIN_INFO(37, 0xA30, 5, 1, 0),
	MTK_PIN_INFO(38, 0xA30, 6, 1, 0),
	MTK_PIN_INFO(39, 0xA30, 7, 1, 0),
	MTK_PIN_INFO(40, 0xA30, 8, 1, 0),
	MTK_PIN_INFO(41, 0xA30, 9, 1, 0),
	MTK_PIN_INFO(42, 0xA30, 10, 1, 0),
	MTK_PIN_INFO(43, 0xA30, 11, 1, 0),
	MTK_PIN_INFO(44, 0xA30, 12, 1, 0),
	MTK_PIN_INFO(45, 0xA30, 13, 1, 0),
	MTK_PIN_INFO(46, 0xA30, 14, 1, 0),
	MTK_PIN_INFO(47, 0xA30, 15, 1, 0),
	MTK_PIN_INFO(48, 0xA30, 16, 1, 0),
	MTK_PIN_INFO(49, 0xA30, 17, 1, 0),
	MTK_PIN_INFO(50, 0xA30, 18, 1, 0),
	MTK_PIN_INFO(51, 0x830, 0, 1, 0),
	MTK_PIN_INFO(52, 0x830, 1, 1, 0),
	MTK_PIN_INFO(53, 0x830, 2, 1, 0),
	MTK_PIN_INFO(54, 0x830, 3, 1, 0),
	MTK_PIN_INFO(55, 0x830, 4, 1, 0),
	MTK_PIN_INFO(56, 0x830, 5, 1, 0),
	MTK_PIN_INFO(57, 0x830, 6, 1, 0),
	MTK_PIN_INFO(58, 0x830, 7, 1, 0),
	MTK_PIN_INFO(59, 0x830, 10, 1, 0),
	MTK_PIN_INFO(60, 0x830, 11, 1, 0),
	MTK_PIN_INFO(61, 0x830, 8, 1, 0),
	MTK_PIN_INFO(62, 0x830, 9, 1, 0),
	MTK_PIN_INFO(63, 0x830, 12, 1, 0),
	MTK_PIN_INFO(64, 0x830, 13, 1, 0),
	MTK_PIN_INFO(65, 0x830, 14, 1, 0),
	MTK_PIN_INFO(66, 0x830, 15, 1, 0),
	MTK_PIN_INFO(67, 0x830, 18, 1, 0),
	MTK_PIN_INFO(68, 0x830, 19, 1, 0),
	MTK_PIN_INFO(69, 0x830, 16, 1, 0),
	MTK_PIN_INFO(70, 0x830, 17, 1, 0),
	MTK_PIN_INFO(71, 0xB30, 0, 1, 0),
	MTK_PIN_INFO(72, 0xB30, 1, 1, 0),
	MTK_PIN_INFO(73, 0xB30, 4, 1, 0),
	MTK_PIN_INFO(74, 0xB30, 5, 1, 0),
	MTK_PIN_INFO(75, 0xB30, 6, 1, 0),
	MTK_PIN_INFO(76, 0xB30, 7, 1, 0),
	MTK_PIN_INFO(77, 0xB30, 8, 1, 0),
	MTK_PIN_INFO(78, 0xB30, 9, 1, 0),
	MTK_PIN_INFO(79, 0xB30, 10, 1, 0),
	MTK_PIN_INFO(80, 0xB30, 11, 1, 0),
	MTK_PIN_INFO(81, 0xB30, 12, 1, 0),
	MTK_PIN_INFO(82, 0xB30, 13, 1, 0),
	MTK_PIN_INFO(83, 0xB30, 14, 1, 0),
	MTK_PIN_INFO(84, 0xB30, 15, 1, 0),
	MTK_PIN_INFO(85, 0xB30, 16, 1, 0),
	MTK_PIN_INFO(86, 0xB30, 17, 1, 0),
	MTK_PIN_INFO(87, 0xC30, 0, 1, 0),
	MTK_PIN_INFO(88, 0xC30, 1, 1, 0),
	MTK_PIN_INFO(89, 0xC30, 2, 1, 0),
	MTK_PIN_INFO(90, 0xC30, 3, 1, 0),
	MTK_PIN_INFO(91, 0xB30, 18, 1, 0),
	MTK_PIN_INFO(92, 0xB30, 19, 1, 0),
	MTK_PIN_INFO(93, 0xB30, 20, 1, 0),
	MTK_PIN_INFO(94, 0xB30, 21, 1, 0),
	MTK_PIN_INFO(95, 0xB30, 22, 1, 0),
	MTK_PIN_INFO(96, 0xB30, 23, 1, 0),
	MTK_PIN_INFO(97, 0xB30, 24, 1, 0),
	MTK_PIN_INFO(98, 0xB30, 25, 1, 0),
	MTK_PIN_INFO(99, 0xB30, 26, 1, 0),
	MTK_PIN_INFO(100, 0xB30, 27, 1, 0),
	MTK_PIN_INFO(101, 0xB30, 28, 1, 0),
	MTK_PIN_INFO(102, 0xB30, 29, 1, 0),
};

static const struct mtk_pin_info mtk_pin_info_pd[] = {
	MTK_PIN_INFO(0, 0x940, 0, 1, 0),
	MTK_PIN_INFO(1, 0x940, 1, 1, 0),
	MTK_PIN_INFO(2, 0x940, 2, 1, 0),
	MTK_PIN_INFO(3, 0x940, 3, 1, 0),
	MTK_PIN_INFO(4, 0x940, 4, 1, 0),
	MTK_PIN_INFO(5, 0x940, 5, 1, 0),
	MTK_PIN_INFO(6, 0x940, 6, 1, 0),
	MTK_PIN_INFO(7, 0x940, 7, 1, 0),
	MTK_PIN_INFO(8, 0x940, 8, 1, 0),
	MTK_PIN_INFO(9, 0x940, 9, 1, 0),
	MTK_PIN_INFO(10, 0x940, 10, 1, 0),
	MTK_PIN_INFO(11, 0x940, 11, 1, 0),
	MTK_PIN_INFO(12, 0x940, 12, 1, 0),
	MTK_PIN_INFO(13, 0x940, 13, 1, 0),
	MTK_PIN_INFO(14, 0x940, 14, 1, 0),
	MTK_PIN_INFO(15, 0x940, 15, 1, 0),
	MTK_PIN_INFO(16, 0x940, 16, 1, 0),
	MTK_PIN_INFO(17, 0x940, 17, 1, 0),
	MTK_PIN_INFO(18, 0x940, 18, 1, 0),
	MTK_PIN_INFO(19, 0x940, 19, 1, 0),
	MTK_PIN_INFO(20, 0x940, 20, 1, 0),
	MTK_PIN_INFO(21, 0x940, 21, 1, 0),
	MTK_PIN_INFO(22, 0x940, 22, 1, 0),
	MTK_PIN_INFO(23, 0x940, 23, 1, 0),
	MTK_PIN_INFO(24, 0x940, 24, 1, 0),
	MTK_PIN_INFO(25, 0x940, 25, 1, 0),
	MTK_PIN_INFO(26, 0x940, 26, 1, 0),
	MTK_PIN_INFO(27, 0x940, 27, 1, 0),
	MTK_PIN_INFO(28, 0x940, 28, 1, 0),
	MTK_PIN_INFO(29, 0x940, 29, 1, 0),
	MTK_PIN_INFO(30, 0x940, 30, 1, 0),
	MTK_PIN_INFO(31, 0x940, 31, 1, 0),
	MTK_PIN_INFO(32, 0xA40, 0, 1, 0),
	MTK_PIN_INFO(33, 0xA40, 1, 1, 0),
	MTK_PIN_INFO(34, 0xA40, 2, 1, 0),
	MTK_PIN_INFO(35, 0xA40, 3, 1, 0),
	MTK_PIN_INFO(36, 0xA40, 4, 1, 0),
	MTK_PIN_INFO(37, 0xA40, 5, 1, 0),
	MTK_PIN_INFO(38, 0xA40, 6, 1, 0),
	MTK_PIN_INFO(39, 0xA40, 7, 1, 0),
	MTK_PIN_INFO(40, 0xA40, 8, 1, 0),
	MTK_PIN_INFO(41, 0xA40, 9, 1, 0),
	MTK_PIN_INFO(42, 0xA40, 10, 1, 0),
	MTK_PIN_INFO(43, 0xA40, 11, 1, 0),
	MTK_PIN_INFO(44, 0xA40, 12, 1, 0),
	MTK_PIN_INFO(45, 0xA40, 13, 1, 0),
	MTK_PIN_INFO(46, 0xA40, 14, 1, 0),
	MTK_PIN_INFO(47, 0xA40, 15, 1, 0),
	MTK_PIN_INFO(48, 0xA40, 16, 1, 0),
	MTK_PIN_INFO(49, 0xA40, 17, 1, 0),
	MTK_PIN_INFO(50, 0xA40, 18, 1, 0),
	MTK_PIN_INFO(51, 0x840, 0, 1, 0),
	MTK_PIN_INFO(52, 0x840, 1, 1, 0),
	MTK_PIN_INFO(53, 0x840, 2, 1, 0),
	MTK_PIN_INFO(54, 0x840, 3, 1, 0),
	MTK_PIN_INFO(55, 0x840, 4, 1, 0),
	MTK_PIN_INFO(56, 0x840, 5, 1, 0),
	MTK_PIN_INFO(57, 0x840, 6, 1, 0),
	MTK_PIN_INFO(58, 0x840, 7, 1, 0),
	MTK_PIN_INFO(59, 0x840, 10, 1, 0),
	MTK_PIN_INFO(60, 0x840, 11, 1, 0),
	MTK_PIN_INFO(61, 0x840, 8, 1, 0),
	MTK_PIN_INFO(62, 0x840, 9, 1, 0),
	MTK_PIN_INFO(63, 0x840, 12, 1, 0),
	MTK_PIN_INFO(64, 0x840, 13, 1, 0),
	MTK_PIN_INFO(65, 0x840, 14, 1, 0),
	MTK_PIN_INFO(66, 0x840, 15, 1, 0),
	MTK_PIN_INFO(67, 0x840, 18, 1, 0),
	MTK_PIN_INFO(68, 0x840, 19, 1, 0),
	MTK_PIN_INFO(69, 0x840, 16, 1, 0),
	MTK_PIN_INFO(70, 0x840, 17, 1, 0),
	MTK_PIN_INFO(71, 0xB40, 0, 1, 0),
	MTK_PIN_INFO(72, 0xB40, 1, 1, 0),
	MTK_PIN_INFO(73, 0xB40, 4, 1, 0),
	MTK_PIN_INFO(74, 0xB40, 5, 1, 0),
	MTK_PIN_INFO(75, 0xB40, 6, 1, 0),
	MTK_PIN_INFO(76, 0xB40, 7, 1, 0),
	MTK_PIN_INFO(77, 0xB40, 8, 1, 0),
	MTK_PIN_INFO(78, 0xB40, 9, 1, 0),
	MTK_PIN_INFO(79, 0xB40, 10, 1, 0),
	MTK_PIN_INFO(80, 0xB40, 11, 1, 0),
	MTK_PIN_INFO(81, 0xB40, 12, 1, 0),
	MTK_PIN_INFO(82, 0xB40, 13, 1, 0),
	MTK_PIN_INFO(83, 0xB40, 14, 1, 0),
	MTK_PIN_INFO(84, 0xB40, 15, 1, 0),
	MTK_PIN_INFO(85, 0xB40, 16, 1, 0),
	MTK_PIN_INFO(86, 0xB40, 17, 1, 0),
	MTK_PIN_INFO(87, 0xC40, 0, 1, 0),
	MTK_PIN_INFO(88, 0xC40, 1, 1, 0),
	MTK_PIN_INFO(89, 0xC40, 2, 1, 0),
	MTK_PIN_INFO(90, 0xC40, 3, 1, 0),
	MTK_PIN_INFO(91, 0xB40, 18, 1, 0),
	MTK_PIN_INFO(92, 0xB40, 19, 1, 0),
	MTK_PIN_INFO(93, 0xB40, 20, 1, 0),
	MTK_PIN_INFO(94, 0xB40, 21, 1, 0),
	MTK_PIN_INFO(95, 0xB40, 22, 1, 0),
	MTK_PIN_INFO(96, 0xB40, 23, 1, 0),
	MTK_PIN_INFO(97, 0xB40, 24, 1, 0),
	MTK_PIN_INFO(98, 0xB40, 25, 1, 0),
	MTK_PIN_INFO(99, 0xB40, 26, 1, 0),
	MTK_PIN_INFO(100, 0xB40, 27, 1, 0),
	MTK_PIN_INFO(101, 0xB40, 28, 1, 0),
	MTK_PIN_INFO(102, 0xB40, 29, 1, 0),
};

static const struct mtk_pin_info mtk_pin_info_drve4[] = {
	MTK_PIN_INFO(0, 0x960, 0, 1, 0),
	MTK_PIN_INFO(1, 0x960, 1, 1, 0),
	MTK_PIN_INFO(2, 0x960, 2, 1, 0),
	MTK_PIN_INFO(3, 0x960, 3, 1, 0),
	MTK_PIN_INFO(4, 0x960, 4, 1, 0),
	MTK_PIN_INFO(5, 0x960, 5, 1, 0),
	MTK_PIN_INFO(6, 0x960, 6, 1, 0),
	MTK_PIN_INFO(7, 0x960, 7, 1, 0),
	MTK_PIN_INFO(8, 0x960, 8, 1, 0),
	MTK_PIN_INFO(9, 0x960, 9, 1, 0),
	MTK_PIN_INFO(10, 0x960, 10, 1, 0),
	MTK_PIN_INFO(11, 0x960, 11, 1, 0),
	MTK_PIN_INFO(12, 0x960, 12, 1, 0),
	MTK_PIN_INFO(13, 0x960, 13, 1, 0),
	MTK_PIN_INFO(14, 0x960, 14, 1, 0),
	MTK_PIN_INFO(15, 0x960, 15, 1, 0),
	MTK_PIN_INFO(16, 0x960, 16, 1, 0),
	MTK_PIN_INFO(17, 0x960, 17, 1, 0),
	MTK_PIN_INFO(18, 0x960, 18, 1, 0),
	MTK_PIN_INFO(19, 0x960, 19, 1, 0),
	MTK_PIN_INFO(20, 0x960, 20, 1, 0),
	MTK_PIN_INFO(21, 0x960, 21, 1, 0),
	MTK_PIN_INFO(22, 0x960, 22, 1, 0),
	MTK_PIN_INFO(23, 0x960, 23, 1, 0),
	MTK_PIN_INFO(24, 0x960, 24, 1, 0),
	MTK_PIN_INFO(25, 0x960, 25, 1, 0),
	MTK_PIN_INFO(26, 0x960, 26, 1, 0),
	MTK_PIN_INFO(27, 0x960, 27, 1, 0),
	MTK_PIN_INFO(28, 0x960, 28, 1, 0),
	MTK_PIN_INFO(29, 0x960, 29, 1, 0),
	MTK_PIN_INFO(30, 0x960, 30, 1, 0),
	MTK_PIN_INFO(31, 0x960, 31, 1, 0),
	MTK_PIN_INFO(32, 0xA60, 0, 1, 0),
	MTK_PIN_INFO(33, 0xA60, 1, 1, 0),
	MTK_PIN_INFO(34, 0xA60, 2, 1, 0),
	MTK_PIN_INFO(35, 0xA60, 3, 1, 0),
	MTK_PIN_INFO(36, 0xA60, 4, 1, 0),
	MTK_PIN_INFO(37, 0xA60, 5, 1, 0),
	MTK_PIN_INFO(38, 0xA60, 6, 1, 0),
	MTK_PIN_INFO(39, 0xA60, 7, 1, 0),
	MTK_PIN_INFO(40, 0xA60, 8, 1, 0),
	MTK_PIN_INFO(41, 0xA60, 9, 1, 0),
	MTK_PIN_INFO(42, 0xA60, 10, 1, 0),
	MTK_PIN_INFO(43, 0xA60, 11, 1, 0),
	MTK_PIN_INFO(44, 0xA60, 12, 1, 0),
	MTK_PIN_INFO(45, 0xA60, 13, 1, 0),
	MTK_PIN_INFO(46, 0xA60, 14, 1, 0),
	MTK_PIN_INFO(47, 0xA60, 15, 1, 0),
	MTK_PIN_INFO(48, 0xA60, 16, 1, 0),
	MTK_PIN_INFO(49, 0xA60, 17, 1, 0),
	MTK_PIN_INFO(50, 0xA60, 18, 1, 0),
	MTK_PIN_INFO(51, 0x860, 0, 1, 0),
	MTK_PIN_INFO(52, 0x860, 1, 1, 0),
	MTK_PIN_INFO(53, 0x860, 2, 1, 0),
	MTK_PIN_INFO(54, 0x860, 3, 1, 0),
	MTK_PIN_INFO(55, 0x860, 4, 1, 0),
	MTK_PIN_INFO(56, 0x860, 5, 1, 0),
	MTK_PIN_INFO(57, 0x860, 6, 1, 0),
	MTK_PIN_INFO(58, 0x860, 7, 1, 0),
	MTK_PIN_INFO(59, 0x860, 10, 1, 0),
	MTK_PIN_INFO(60, 0x860, 11, 1, 0),
	MTK_PIN_INFO(61, 0x860, 8, 1, 0),
	MTK_PIN_INFO(62, 0x860, 9, 1, 0),
	MTK_PIN_INFO(63, 0x860, 12, 1, 0),
	MTK_PIN_INFO(64, 0x860, 13, 1, 0),
	MTK_PIN_INFO(65, 0x860, 14, 1, 0),
	MTK_PIN_INFO(66, 0x860, 15, 1, 0),
	MTK_PIN_INFO(67, 0x860, 18, 1, 0),
	MTK_PIN_INFO(68, 0x860, 19, 1, 0),
	MTK_PIN_INFO(69, 0x860, 16, 1, 0),
	MTK_PIN_INFO(70, 0x860, 17, 1, 0),
	MTK_PIN_INFO(71, 0xB60, 0, 1, 0),
	MTK_PIN_INFO(72, 0xB60, 1, 1, 0),
	MTK_PIN_INFO(73, 0xB60, 4, 1, 0),
	MTK_PIN_INFO(74, 0xB60, 5, 1, 0),
	MTK_PIN_INFO(75, 0xB60, 6, 1, 0),
	MTK_PIN_INFO(76, 0xB60, 7, 1, 0),
	MTK_PIN_INFO(77, 0xB60, 8, 1, 0),
	MTK_PIN_INFO(78, 0xB60, 9, 1, 0),
	MTK_PIN_INFO(79, 0xB60, 10, 1, 0),
	MTK_PIN_INFO(80, 0xB60, 11, 1, 0),
	MTK_PIN_INFO(81, 0xB60, 12, 1, 0),
	MTK_PIN_INFO(82, 0xB60, 13, 1, 0),
	MTK_PIN_INFO(83, 0xB60, 14, 1, 0),
	MTK_PIN_INFO(84, 0xB60, 15, 1, 0),
	MTK_PIN_INFO(85, 0xB60, 16, 1, 0),
	MTK_PIN_INFO(86, 0xB60, 17, 1, 0),
	MTK_PIN_INFO(87, 0xC60, 0, 1, 0),
	MTK_PIN_INFO(88, 0xC60, 1, 1, 0),
	MTK_PIN_INFO(89, 0xC60, 2, 1, 0),
	MTK_PIN_INFO(90, 0xC60, 3, 1, 0),
	MTK_PIN_INFO(91, 0xB60, 18, 1, 0),
	MTK_PIN_INFO(92, 0xB60, 19, 1, 0),
	MTK_PIN_INFO(93, 0xB60, 20, 1, 0),
	MTK_PIN_INFO(94, 0xB60, 21, 1, 0),
	MTK_PIN_INFO(95, 0xB60, 22, 1, 0),
	MTK_PIN_INFO(96, 0xB60, 23, 1, 0),
	MTK_PIN_INFO(97, 0xB60, 24, 1, 0),
	MTK_PIN_INFO(98, 0xB60, 25, 1, 0),
	MTK_PIN_INFO(99, 0xB60, 26, 1, 0),
	MTK_PIN_INFO(100, 0xB60, 27, 1, 0),
	MTK_PIN_INFO(101, 0xB60, 28, 1, 0),
	MTK_PIN_INFO(102, 0xB60, 29, 1, 0),
};

static const struct mtk_pin_info mtk_pin_info_drve8[] = {
	MTK_PIN_INFO(0, 0x970, 0, 1, 0),
	MTK_PIN_INFO(1, 0x970, 1, 1, 0),
	MTK_PIN_INFO(2, 0x970, 2, 1, 0),
	MTK_PIN_INFO(3, 0x970, 3, 1, 0),
	MTK_PIN_INFO(4, 0x970, 4, 1, 0),
	MTK_PIN_INFO(5, 0x970, 5, 1, 0),
	MTK_PIN_INFO(6, 0x970, 6, 1, 0),
	MTK_PIN_INFO(7, 0x970, 7, 1, 0),
	MTK_PIN_INFO(8, 0x970, 8, 1, 0),
	MTK_PIN_INFO(9, 0x970, 9, 1, 0),
	MTK_PIN_INFO(10, 0x970, 10, 1, 0),
	MTK_PIN_INFO(11, 0x970, 11, 1, 0),
	MTK_PIN_INFO(12, 0x970, 12, 1, 0),
	MTK_PIN_INFO(13, 0x970, 13, 1, 0),
	MTK_PIN_INFO(14, 0x970, 14, 1, 0),
	MTK_PIN_INFO(15, 0x970, 15, 1, 0),
	MTK_PIN_INFO(16, 0x970, 16, 1, 0),
	MTK_PIN_INFO(17, 0x970, 17, 1, 0),
	MTK_PIN_INFO(18, 0x970, 18, 1, 0),
	MTK_PIN_INFO(19, 0x970, 19, 1, 0),
	MTK_PIN_INFO(20, 0x970, 20, 1, 0),
	MTK_PIN_INFO(21, 0x970, 21, 1, 0),
	MTK_PIN_INFO(22, 0x970, 22, 1, 0),
	MTK_PIN_INFO(23, 0x970, 23, 1, 0),
	MTK_PIN_INFO(24, 0x970, 24, 1, 0),
	MTK_PIN_INFO(25, 0x970, 25, 1, 0),
	MTK_PIN_INFO(26, 0x970, 26, 1, 0),
	MTK_PIN_INFO(27, 0x970, 27, 1, 0),
	MTK_PIN_INFO(28, 0x970, 28, 1, 0),
	MTK_PIN_INFO(29, 0x970, 29, 1, 0),
	MTK_PIN_INFO(30, 0x970, 30, 1, 0),
	MTK_PIN_INFO(31, 0x970, 31, 1, 0),
	MTK_PIN_INFO(32, 0xA70, 0, 1, 0),
	MTK_PIN_INFO(33, 0xA70, 1, 1, 0),
	MTK_PIN_INFO(34, 0xA70, 2, 1, 0),
	MTK_PIN_INFO(35, 0xA70, 3, 1, 0),
	MTK_PIN_INFO(36, 0xA70, 4, 1, 0),
	MTK_PIN_INFO(37, 0xA70, 5, 1, 0),
	MTK_PIN_INFO(38, 0xA70, 6, 1, 0),
	MTK_PIN_INFO(39, 0xA70, 7, 1, 0),
	MTK_PIN_INFO(40, 0xA70, 8, 1, 0),
	MTK_PIN_INFO(41, 0xA70, 9, 1, 0),
	MTK_PIN_INFO(42, 0xA70, 10, 1, 0),
	MTK_PIN_INFO(43, 0xA70, 11, 1, 0),
	MTK_PIN_INFO(44, 0xA70, 12, 1, 0),
	MTK_PIN_INFO(45, 0xA70, 13, 1, 0),
	MTK_PIN_INFO(46, 0xA70, 14, 1, 0),
	MTK_PIN_INFO(47, 0xA70, 15, 1, 0),
	MTK_PIN_INFO(48, 0xA70, 16, 1, 0),
	MTK_PIN_INFO(49, 0xA70, 17, 1, 0),
	MTK_PIN_INFO(50, 0xA70, 18, 1, 0),
	MTK_PIN_INFO(51, 0x870, 0, 1, 0),
	MTK_PIN_INFO(52, 0x870, 1, 1, 0),
	MTK_PIN_INFO(53, 0x870, 2, 1, 0),
	MTK_PIN_INFO(54, 0x870, 3, 1, 0),
	MTK_PIN_INFO(55, 0x870, 4, 1, 0),
	MTK_PIN_INFO(56, 0x870, 5, 1, 0),
	MTK_PIN_INFO(57, 0x870, 6, 1, 0),
	MTK_PIN_INFO(58, 0x870, 7, 1, 0),
	MTK_PIN_INFO(59, 0x870, 10, 1, 0),
	MTK_PIN_INFO(60, 0x870, 11, 1, 0),
	MTK_PIN_INFO(61, 0x870, 8, 1, 0),
	MTK_PIN_INFO(62, 0x870, 9, 1, 0),
	MTK_PIN_INFO(63, 0x870, 12, 1, 0),
	MTK_PIN_INFO(64, 0x870, 13, 1, 0),
	MTK_PIN_INFO(65, 0x870, 14, 1, 0),
	MTK_PIN_INFO(66, 0x870, 15, 1, 0),
	MTK_PIN_INFO(67, 0x870, 18, 1, 0),
	MTK_PIN_INFO(68, 0x870, 19, 1, 0),
	MTK_PIN_INFO(69, 0x870, 16, 1, 0),
	MTK_PIN_INFO(70, 0x870, 17, 1, 0),
	MTK_PIN_INFO(71, 0xB70, 0, 1, 0),
	MTK_PIN_INFO(72, 0xB70, 1, 1, 0),
	MTK_PIN_INFO(73, 0xB70, 4, 1, 0),
	MTK_PIN_INFO(74, 0xB70, 5, 1, 0),
	MTK_PIN_INFO(75, 0xB70, 6, 1, 0),
	MTK_PIN_INFO(76, 0xB70, 7, 1, 0),
	MTK_PIN_INFO(77, 0xB70, 8, 1, 0),
	MTK_PIN_INFO(78, 0xB70, 9, 1, 0),
	MTK_PIN_INFO(79, 0xB70, 10, 1, 0),
	MTK_PIN_INFO(80, 0xB70, 11, 1, 0),
	MTK_PIN_INFO(81, 0xB70, 12, 1, 0),
	MTK_PIN_INFO(82, 0xB70, 13, 1, 0),
	MTK_PIN_INFO(83, 0xB70, 14, 1, 0),
	MTK_PIN_INFO(84, 0xB70, 15, 1, 0),
	MTK_PIN_INFO(85, 0xB70, 16, 1, 0),
	MTK_PIN_INFO(86, 0xB70, 17, 1, 0),
	MTK_PIN_INFO(87, 0xC70, 0, 1, 0),
	MTK_PIN_INFO(88, 0xC70, 1, 1, 0),
	MTK_PIN_INFO(89, 0xC70, 2, 1, 0),
	MTK_PIN_INFO(90, 0xC70, 3, 1, 0),
	MTK_PIN_INFO(91, 0xB70, 18, 1, 0),
	MTK_PIN_INFO(92, 0xB70, 19, 1, 0),
	MTK_PIN_INFO(93, 0xB70, 20, 1, 0),
	MTK_PIN_INFO(94, 0xB70, 21, 1, 0),
	MTK_PIN_INFO(95, 0xB70, 22, 1, 0),
	MTK_PIN_INFO(96, 0xB70, 23, 1, 0),
	MTK_PIN_INFO(97, 0xB70, 24, 1, 0),
	MTK_PIN_INFO(98, 0xB70, 25, 1, 0),
	MTK_PIN_INFO(99, 0xB70, 26, 1, 0),
	MTK_PIN_INFO(100, 0xB70, 27, 1, 0),
	MTK_PIN_INFO(101, 0xB70, 28, 1, 0),
	MTK_PIN_INFO(102, 0xB70, 29, 1, 0),
};

static const struct mtk_pin_info mtk_pin_info_smt[] = {
	MTK_PIN_INFO(0, 0x920, 0, 1, 0),
	MTK_PIN_INFO(1, 0x920, 1, 1, 0),
	MTK_PIN_INFO(2, 0x920, 2, 1, 0),
	MTK_PIN_INFO(3, 0x920, 3, 1, 0),
	MTK_PIN_INFO(4, 0x920, 4, 1, 0),
	MTK_PIN_INFO(5, 0x920, 5, 1, 0),
	MTK_PIN_INFO(6, 0x920, 6, 1, 0),
	MTK_PIN_INFO(7, 0x920, 7, 1, 0),
	MTK_PIN_INFO(8, 0x920, 8, 1, 0),
	MTK_PIN_INFO(9, 0x920, 9, 1, 0),
	MTK_PIN_INFO(10, 0x920, 10, 1, 0),
	MTK_PIN_INFO(11, 0x920, 11, 1, 0),
	MTK_PIN_INFO(12, 0x920, 12, 1, 0),
	MTK_PIN_INFO(13, 0x920, 13, 1, 0),
	MTK_PIN_INFO(14, 0x920, 14, 1, 0),
	MTK_PIN_INFO(15, 0x920, 15, 1, 0),
	MTK_PIN_INFO(16, 0x920, 16, 1, 0),
	MTK_PIN_INFO(17, 0x920, 17, 1, 0),
	MTK_PIN_INFO(18, 0x920, 18, 1, 0),
	MTK_PIN_INFO(19, 0x920, 19, 1, 0),
	MTK_PIN_INFO(20, 0x920, 20, 1, 0),
	MTK_PIN_INFO(21, 0x920, 21, 1, 0),
	MTK_PIN_INFO(22, 0x920, 22, 1, 0),
	MTK_PIN_INFO(23, 0x920, 23, 1, 0),
	MTK_PIN_INFO(24, 0x920, 24, 1, 0),
	MTK_PIN_INFO(25, 0x920, 25, 1, 0),
	MTK_PIN_INFO(26, 0x920, 26, 1, 0),
	MTK_PIN_INFO(27, 0x920, 27, 1, 0),
	MTK_PIN_INFO(28, 0x920, 28, 1, 0),
	MTK_PIN_INFO(29, 0x920, 29, 1, 0),
	MTK_PIN_INFO(30, 0x920, 30, 1, 0),
	MTK_PIN_INFO(31, 0x920, 31, 1, 0),
	MTK_PIN_INFO(32, 0xA20, 0, 1, 0),
	MTK_PIN_INFO(33, 0xA20, 1, 1, 0),
	MTK_PIN_INFO(34, 0xA20, 2, 1, 0),
	MTK_PIN_INFO(35, 0xA20, 3, 1, 0),
	MTK_PIN_INFO(36, 0xA20, 4, 1, 0),
	MTK_PIN_INFO(37, 0xA20, 5, 1, 0),
	MTK_PIN_INFO(38, 0xA20, 6, 1, 0),
	MTK_PIN_INFO(39, 0xA20, 7, 1, 0),
	MTK_PIN_INFO(40, 0xA20, 8, 1, 0),
	MTK_PIN_INFO(41, 0xA20, 9, 1, 0),
	MTK_PIN_INFO(42, 0xA20, 10, 1, 0),
	MTK_PIN_INFO(43, 0xA20, 11, 1, 0),
	MTK_PIN_INFO(44, 0xA20, 12, 1, 0),
	MTK_PIN_INFO(45, 0xA20, 13, 1, 0),
	MTK_PIN_INFO(46, 0xA20, 14, 1, 0),
	MTK_PIN_INFO(47, 0xA20, 15, 1, 0),
	MTK_PIN_INFO(48, 0xA20, 16, 1, 0),
	MTK_PIN_INFO(49, 0xA20, 17, 1, 0),
	MTK_PIN_INFO(50, 0xA20, 18, 1, 0),
	MTK_PIN_INFO(51, 0x820, 0, 1, 0),
	MTK_PIN_INFO(52, 0x820, 1, 1, 0),
	MTK_PIN_INFO(53, 0x820, 2, 1, 0),
	MTK_PIN_INFO(54, 0x820, 3, 1, 0),
	MTK_PIN_INFO(55, 0x820, 4, 1, 0),
	MTK_PIN_INFO(56, 0x820, 5, 1, 0),
	MTK_PIN_INFO(57, 0x820, 6, 1, 0),
	MTK_PIN_INFO(58, 0x820, 7, 1, 0),
	MTK_PIN_INFO(59, 0x820, 10, 1, 0),
	MTK_PIN_INFO(60, 0x820, 11, 1, 0),
	MTK_PIN_INFO(61, 0x820, 8, 1, 0),
	MTK_PIN_INFO(62, 0x820, 9, 1, 0),
	MTK_PIN_INFO(63, 0x820, 12, 1, 0),
	MTK_PIN_INFO(64, 0x820, 13, 1, 0),
	MTK_PIN_INFO(65, 0x820, 14, 1, 0),
	MTK_PIN_INFO(66, 0x820, 15, 1, 0),
	MTK_PIN_INFO(67, 0x820, 18, 1, 0),
	MTK_PIN_INFO(68, 0x820, 19, 1, 0),
	MTK_PIN_INFO(69, 0x820, 16, 1, 0),
	MTK_PIN_INFO(70, 0x820, 17, 1, 0),
	MTK_PIN_INFO(71, 0xB20, 0, 1, 0),
	MTK_PIN_INFO(72, 0xB20, 1, 1, 0),
	MTK_PIN_INFO(73, 0xB20, 4, 1, 0),
	MTK_PIN_INFO(74, 0xB20, 5, 1, 0),
	MTK_PIN_INFO(75, 0xB20, 6, 1, 0),
	MTK_PIN_INFO(76, 0xB20, 7, 1, 0),
	MTK_PIN_INFO(77, 0xB20, 8, 1, 0),
	MTK_PIN_INFO(78, 0xB20, 9, 1, 0),
	MTK_PIN_INFO(79, 0xB20, 10, 1, 0),
	MTK_PIN_INFO(80, 0xB20, 11, 1, 0),
	MTK_PIN_INFO(81, 0xB20, 12, 1, 0),
	MTK_PIN_INFO(82, 0xB20, 13, 1, 0),
	MTK_PIN_INFO(83, 0xB20, 14, 1, 0),
	MTK_PIN_INFO(84, 0xB20, 15, 1, 0),
	MTK_PIN_INFO(85, 0xB20, 16, 1, 0),
	MTK_PIN_INFO(86, 0xB20, 17, 1, 0),
	MTK_PIN_INFO(87, 0xC20, 0, 1, 0),
	MTK_PIN_INFO(88, 0xC20, 1, 1, 0),
	MTK_PIN_INFO(89, 0xC20, 2, 1, 0),
	MTK_PIN_INFO(90, 0xC20, 3, 1, 0),
	MTK_PIN_INFO(91, 0xB20, 18, 1, 0),
	MTK_PIN_INFO(92, 0xB20, 19, 1, 0),
	MTK_PIN_INFO(93, 0xB20, 20, 1, 0),
	MTK_PIN_INFO(94, 0xB20, 21, 1, 0),
	MTK_PIN_INFO(95, 0xB20, 22, 1, 0),
	MTK_PIN_INFO(96, 0xB20, 23, 1, 0),
	MTK_PIN_INFO(97, 0xB20, 24, 1, 0),
	MTK_PIN_INFO(98, 0xB20, 25, 1, 0),
	MTK_PIN_INFO(99, 0xB20, 26, 1, 0),
	MTK_PIN_INFO(100, 0xB20, 27, 1, 0),
	MTK_PIN_INFO(101, 0xB20, 28, 1, 0),
	MTK_PIN_INFO(102, 0xB20, 29, 1, 0),
};

/******************************************************************************
* GPIO Driver interface 
******************************************************************************/
/*direction*/
int mt_set_gpio_dir(unsigned long pin, unsigned long dir);
int mt_get_gpio_dir(unsigned long pin);

/*pull select*/
int mt_set_gpio_pull_select(unsigned long pin, unsigned long select);    
int mt_get_gpio_pull_select(unsigned long pin);

/*input/output*/
int mt_set_gpio_out(unsigned long pin, unsigned long output);
int mt_get_gpio_out(unsigned long pin);
int mt_get_gpio_in(unsigned long pin);

/*mode control*/
int mt_set_gpio_mode(unsigned long pin, unsigned long mode);
int mt_get_gpio_mode(unsigned long pin);

/*drving control*/
int mt_set_gpio_drving(unsigned long pin, unsigned long drv);
int mt_get_gpio_drving(unsigned long pin);

/*schmitt trigger*/
int mt_set_gpio_smt(unsigned long pin, unsigned long enable);
int mt_get_gpio_smt(unsigned long pin);
